That one is obviously needed to make pae xen-linux work with
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Mon, 8 Aug 2005 16:51:02 +0000 (16:51 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Mon, 8 Aug 2005 16:51:02 +0000 (16:51 +0000)
more than 4GB.

linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable-3level.h

index 42093d96bd333a9a2e19dccb3bba568225dbce94..601a48e7f86385b423316635bfdbef8f1b2b0562 100644 (file)
@@ -132,7 +132,8 @@ static inline int pte_none(pte_t pte)
 
 #define INVALID_P2M_ENTRY (~0U)
 #define FOREIGN_FRAME(_m) ((_m) | (1UL<<((sizeof(unsigned long)*8)-1)))
-#define pte_mfn(_pte) ((_pte).pte_low >> PAGE_SHIFT) /* FIXME */
+#define pte_mfn(_pte) ( ((_pte).pte_low >> PAGE_SHIFT) |\
+                       (((_pte).pte_high & 0xfff) << (32-PAGE_SHIFT)) )
 #define pte_pfn(_pte)                                                  \
 ({                                                                     \
        unsigned long mfn = pte_mfn(_pte);                              \